1. Technical Field
The present invention relates in general to input/output (I/O) devices and, in particular, to I/O storage adapters. More particularly, the present invention relates to a method for maintaining data coherency in a dual storage adapter that utilizes clustered I/O adapters.
2. Description of the Related Art
Business use of computer systems has increased dramatically over the last half century. The use of the computer has also evolved and in today""s business environment, more and more customers are becoming critically dependent on their information technology resources. As a result, they demand that these resources are always available. Any outage affecting their information technology resources has serious business implications including lost revenue and lost business. At the extreme, an extended system outage can cause a business to be permanently closed. Furthermore, the cost of one hour of system downtime can range from tens of thousands of dollars to several million dollars, depending on the nature of the business. Therefore, users require that their system services be continuously available, that is that the services be available 24 hours a day, 365 days a year. Technology that supports increased computer system availability has become critical to many businesses.
A key technology that enables systems to provide continuous availability is clustering. A cluster is a collection of one or more complete systems that operate together to provide a single, unified computing capability. The perspective from the end user is that the cluster operates as though it were a single system. Work can be distributed across multiple systems in the cluster and any single outage, planned or unplanned, in the cluster will not disrupt the services provided to the end user. The end user services can be relocated from system to system within the cluster in a relatively transparent fashion.
For computer systems, reliability is a measure of unexpected failures and availability is a measure of system downtime; the lower the downtime, the higher the availability. One can draw a relationship between reliability and availability, of course, because unexpected software and hardware failures are one cause of downtime. Thus, with all other factors being equal, a system with high reliability will also have high availability. To achieve continuous availability, more than just robust system availability is needed. Critical data and critical applications must also be resilient to outages and both must be accessible across the cluster even when the normal hosting system for the resource fails. A complete solution is achieved when the critical data and the critical applications are made to be resilient resources and are always available. Data resilience ensures that a copy of the data is always accessible to end users of the cluster while application resilience ensures that the services provided by the application are always accessible to end users of the cluster.
Input/output (I/O) storage adapters are interfaces between a computing system and a storage subsystem. In a high availability configuration, such as a cluster, redundant adapters are utilized to provide the necessary reliability, in the event that when a primary adapter fails, the backup adapter can takeover ensuring continued operation. When employing storage adapters that have resident write caches, the write cache data and directory information must be kept in synch, i.e., the cache data and directory information in the primary and backup adapters must mirror each other, to ensure a xe2x80x9cflawlessxe2x80x9d takeover in the event of a failure in the primary adapter to maintain data resiliency.
Accordingly, what is needed in the art is method and system for maintaining data coherency between two clustered adapters.
A method for maintaining data coherency in a dual Input/Output(I/O) adapter having primary and secondary adapters, wherein each of the primary and secondary adapters includes resident write cache data and directory storage devices is disclosed. The method includes utilizing a split point to separate each of the cache data and directory storage devices into first and second regions, wherein the first regions in the primary adapter cache data and directory storage devices contain the primary adapter cache data and directory information, respectively, and the second regions in the primary adapter cache data and directory storage devices contain the secondary adapter cache data and directory information, respectively. In an advantageous embodiment, the first and second regions are substantially identical in size. Information stored in the primary adapter cache data and directory storage devices is mirrored into the secondary adapter cache data and directory storage devices or, alternatively, information stored in the secondary adapter cache data and directory storage devices is mirrored into the primary adapter cache data and directory storage devices utilizing a dedicated communication link, such as a high-speed serial bus, between the primary and secondary adapters. The first regions in the secondary adapter cache data and directory storage devices contain the primary adapter cache data and directory information, respectively, and the second regions in the secondary adapter cache data and directory storage devices contain the secondary adapter cache data and directory information, respectively.
The present invention discloses a novel method for maintaining data coherency between a primary adapter and its secondary, or backup, adapter. The primary and secondary adapters of the present invention provide mutual backup of their write cache for one another. Furthermore, the write cache storage of the adapters can be split, in advantageous embodiments, asymmetrically utilizing split points to meet functional or performance requirements. For example, if one adapter is controlling ten disk drives and the other adapter is controlling five disk drives, the first adapter could be allocated ⅔ of the write cache to maintain consistent performance. In the event that one adapter is not being utilized to backup another adapter, or if the other adapter has failed, then the entire size of the write cache can be dedicated to the one adapter.
In another embodiment of the present invention, the method also includes writing correlation data to the primary and secondary adapters nonvolatile memory devices. In a preferred embodiment, the correlation data includes the primary and secondary adapters unique identifiers, a flag indicating that the primary adapter""s nonvolatile write cache data has been mirrored to the secondary adapter, and the primary and secondary adapters cache data and directory split point information. In a related embodiment, the flag is a single bit that is set when the primary adapter""s write cache data has been mirrored to the secondary adapter and the unique identifiers are world-wide unique identifiers of the primary and secondary adapters.
In another aspect of the present invention, a method for synchronizing primary and secondary Input/Output (I/O) adapters in a dual storage adapter having a dedicated communication link between the primary and secondary adapters is disclosed. The method includes determining if the dedicated communication link is operational and the primary and secondary adapters are compatible. Next, the method determines if split points in the primary and secondary cache data and directory memory devices match in response to a determination that the dedicated communication link is operational and the primary and secondary adapters are compatible. The method will indicate that an abnormal configuration has been encountered if either the dedicated communication link is non-operational or the primary and secondary adapters are not compatible. A small/medium primary to secondary re-synchronization operation is performed in response to a determination that the split points matches. In the event that the split points do not match, a large primary to secondary re-synchronization operation is performed instead.
Performing a small/medium primary to secondary re-synchronization operation, in an advantageous embodiment, includes determining if the sequence numbers, located in the correlation data associated with the primary and secondary adapter, matches. If the sequence number matches, a small primary to secondary re-synchronization operation is performed, otherwise a medium primary to secondary re-synchronization operation is executed instead. In a related embodiment, performing a small primary to secondary re-synchronization operation includes copying information in the primary adapter""s cache directory to the secondary adapter""s cache directory and performing a medium primary to secondary re-synchronization operation includes copying information in the primary adapter""s cache directory and cache data store to the secondary adapter.
A large primary to secondary re-synchronization operation includes changing the correlation data associated with the primary and secondary adapters. Next, the re-synchronization operation determines if primary to secondary mirroring is enabled and if so, changing the split points on the primary and secondary adapters. Following which, the re-synchronization operation again determines if mirroring between the primary and secondary adapters is enabled and performing a medium re-synchronization operation in response to a determination that mirroring has not been enabled.
The foregoing description has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject matter of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.